<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <title>Document</title>

    <!--
			如果需要兼容IE7及以下的JSON操作，则可以通过引入一个外部的js文件来处理
		-->
    <script type="text/javascript" src="js/json2.js"></script>
    <script type="text/javascript">
      /*
       * JSON
       * 	- JS中的对象只有JS自己认识，其他的语言都不认识
       * 	- JSON就是一个特殊格式的字符串，这个字符串可以被任意的语言所识别，
       * 		并且可以转换为任意语言中的对象，JSON在开发中主要用来数据的交互
       * 	- JSON
       * 		- JavaScript Object Notation JS对象表示法
       * 		- JSON和JS对象的格式一样，只不过JSON字符串中的属性名必须加双引号
       * 			其他的和JS语法一致
       * 		JSON分类：
       * 			1.对象 {}
       * 			2.数组 []
       *
       * 		JSON中允许的值：
       * 			1.字符串
       * 			2.数值
       * 			3.布尔值
       * 			4.null
       * 			5.对象
       * 			6.数组
       */

      //创建一个对象

      var arr = '[1,2,3,"hello",true]';

      var obj2 = '{"arr":[1,2,3]}';

      var arr2 =
        '[{"name":"孙悟空","age":18,"gender":"男"},{"name":"孙悟空","age":18,"gender":"男"}]';

      /*
       * 将JSON字符串转换为JS中的对象
       * 	在JS中，为我们提供了一个工具类，就叫JSON
       * 	这个对象可以帮助我们将一个JSON转换为JS对象，也可以将一个JS对象转换为JSON
       */

      var json = '{"name":"孙悟空","age":18,"gender":"男"}';

      /*
       * json --> js对象
       * 	 JSON.parse()
       * 		- 可以将以JSON字符串转换为js对象
       * 		- 它需要一个JSON字符串作为参数，会将该字符串转换为JS对象并返回
       */

      var o = JSON.parse(json);
      var o2 = JSON.parse(arr);

      //console.log(o.gender);
      //console.log(o2[1]);

      var obj3 = { name: '猪八戒', age: 28, gender: '男' };

      /*
       * JS对象 ---> JSON
       * 	JSON.stringify()
       * 		- 可以将一个JS对象转换为JSON字符串
       * 		- 需要一个js对象作为参数，会返回一个JSON字符串
       */

      var str = JSON.stringify(obj3);
      //console.log(str);

      /*
       * JSON这个对象在IE7及以下的浏览器中不支持，所以在这些浏览器中调用时会报错
       */
      var str3 = '{"name":"孙悟空","age":18,"gender":"男"}';

      JSON.parse(str3);
    </script>
  </head>
  <body></body>
</html>
